package com.qdxwx.data.service.category;

import com.qdxwx.common.entity.Ztree;
import com.qdxwx.models.category.Category;

import java.util.List;

/**
 * 分类Service接口
 * Qdx NetSchool Platform
 * @author qdxwx
 * @updateTime 2022/5/25
 * @description
 */
public interface CategoryService
{
    /**
     * 查询分类
     * 
     * @param categoryId 分类ID
     * @return 分类
     */
    Category get(int categoryId);

    /**
     * 查询分类列表
     * 
     * @param category 分类
     * @return 分类集合
     */
    List<Category> getList(Category category);

    List<Category> getRoots(int channelId);

    List<Category> getRoots(int channelId, int subjectId);

    List<Category> getChildren(int parentId);

    int countChildren(int parentId);

    /**
     * 新增分类
     * 
     * @param category 分类
     * @return 结果
     */
    int insert(Category category);

    /**
     * 修改分类
     * 
     * @param category 分类
     * @return 结果
     */
    int update(Category category);

    int updateChildCount(int categoryId, int childCount);
    /**
     * 删除分类信息
     * 
     * @param categoryId 分类ID
     * @return 结果
     */
    int delete(int categoryId);

    List<Integer> getChildIds(int id);

    List<Category> getParents(int categoryId);

    List<Category> getParents(Category category);

    List<Integer> getParentIds(int id);

    List<Integer> getParentIds(Category category);


    /**
     * 查询分类树列表
     * 
     * @return 所有分类信息
     */
    List<Ztree> getTree(int channelId);
}
